package es.udima.geo.geoserver.rest.entities;

import java.io.Serializable;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;

/**
 * <p>
 * Clase abstracta que sirve como padre de todas las respuestas rest que se
 * realicen.
 * </p>
 * <p>
 * Permite generalizar el uso de un tipo de respuesta para todos los servicios.
 * </p>
 * 
 * @author david
 * 
 */
public abstract class RestServiceResponse implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * Posibles errores ocurridos durante el servicio.
     */
    private Set<IResponseError> responseErrors;

    /**
     * Constructor
     */
    public RestServiceResponse() {
	responseErrors = new HashSet<IResponseError>();
    }

    public boolean isResponseSuccessful() {
	return responseErrors.isEmpty();
    }

    public Collection<IResponseError> getResponseErrors() {
	return responseErrors;
    }

    public void addResponseError(IResponseError responseError) {
	this.responseErrors.add(responseError);
    }

    public void addResponseErrors(Collection<IResponseError> responseErrors) {
	this.responseErrors.addAll(responseErrors);
    }
}
